In computer systems, it is well known to include a basic input/output system (BIOS) programming code (i.e., software or firmware) executable by a processor, such as a central processing unit (CPU), to perform various operations and issue various commands. With conventional computer systems, such as those using “Legacy” BIOS, every software component run by a CPU implements commands or features in their own particular way, even though the features are the same. In other words, there is no centralization in the way each software component implements features to be performed, such as features to be performed by an application specific integrated circuit (ASIC) interfaced with the CPU; i.e., there is no relationship between the software components. Thus, if particular code sequences are wrong or have an error, each software component must change the sequence individually to make corrections, which requires maintenance work by the computer system and is prone to increased error. Moreover, such systems where each software component executes features independently are redundant and tend to utilize more system resources because the same functions are implemented by different software components.
As an illustration of known conventional computer system, FIG. 1 illustrates a diagrammatic example of a “Legacy” BIOS system where a CPU 102 executes various software or firmware components such as BIOS 104 and a software program driver 106, such as a display driver issuing commands to a graphics processing ASIC 112 (e.g., a graphics processing unit (GPU)). As illustrated in this example, the BIOS 104 includes an ASIC program 108 that issues commands 110 to the ASIC 112 via an interface 114, such as PCI, PCI Express or AGP. Additionally, BIOS 104 includes partial initialization tables 116, from which commands 118 may be issued to ASIC 112 by the interface 114 independently of the ASIC program 108 run also in the BIOS 104. The partial initialization tables 116 also communicate with an internal driver component 120, which is software part of the software driver 106. This component 120 also issues commands 122 to the ASIC 112. The software driver 106 also includes software including an ASIC program 124 that also issues instructions and commands 126 to the ASIC 112 via the interface 114. It is noted that each of the software components (e.g., BIOS 104 and driver 106) have many functions in common, which leads to redundancy when commands are issued separately to the ASIC 112. Moreover, each of the portions of the software components, such as ASIC programs 108 and 124, the partial initialization tables 116 and the internal driver component 120 all require maintenance if a modification or an error needed to be fixed is encountered.